﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using TaskManager.Models.Entities;
using TaskManager.Models.PostModels.User;



namespace TaskManager.Controllers.Api
{
    //Api контроллер для приема и передачи данных(POST и GET запросы) связанных с объектом User.
    public class UserController : BaseApiController<User>
    {

        //Получить всех пользователей и отправить их клиенту(в javascript код)
        public HttpResponseMessage GetAll()
        {
            var users = UserService.GetAll().ToList();
            return CreateResponse<IEnumerable<User>>(UserService.GetAll);
        }

        //Принять пользователя с клиентской стороны и поместить в БД.
        [System.Web.Http.HttpPost]
        public HttpResponseMessage Insert(InsertModel model)
        {
            return CreateResponse(privateInsert, model);
        }
        private void privateInsert(InsertModel model)
        {
            var addUser = new User();
            addUser.Name = model.Name;
            addUser.Password = model.Password;

            UserService.Insert(addUser);
        }


        //Принять пользователя с клиентской стороны и удалить из БД.
        [System.Web.Http.HttpPost]
        public HttpResponseMessage Delete(DeleteModel model)
        {
            return CreateResponse(privateDelete, model.Id);
        }
        private void privateDelete(int userId)
        {
            var delUser = UserService.GetById(userId);
            UserService.Delete(delUser);
        }

    }
}
